#!/bin/bash
#
# This script is a convenience wrapper around grpcurl that passes all the known *.proto to it.
#
# Script self-destruction condition:
#   Once tonic implements reflection this script will no longer be necessary.
#   The reflection feature is tracked in https://github.com/hyperium/tonic/issues/165
#   and marked as closed and will likely be included in a tonic version > 0.4.0.
#

set -eu -o pipefail

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"

proto_dir="${SCRIPT_DIR}"/../generated_types/protos

# bash 3.x (default on macos big-sur 🤦) has no readarray.
while IFS= read -r line; do
  proto_flags+=("-proto" "$line")
done < <(find  "${proto_dir}" -name '*.proto')

grpcurl -import-path ./generated_types/protos "${proto_flags[@]}" "$@"
